package org.abettor.angleworm.router;

import java.net.InetSocketAddress;
import java.util.Properties;

/**
 * 路由器管理器
 * @author <a href="http://www.abettor.org/" target="_blank">abettor</a>
 *
 */
public interface RouterManager
{
	/**
	 * 获取到指定Peer的路由器
	 * @param destination 目标Peer地址
	 * @param properties 附加参数，如超时时间、身份认证信息等
	 * @throws RouteException
	 */
	public Router getRouterTo(InetSocketAddress destination, Properties properties) throws RouteException;

	/**
	 * 根据给定的路由创建路由器，路由检测失败返回null
	 * @param route 希望使用的路由
	 * @param properties 附加参数，如超时时间、身份认证信息等
	 * @throws RouteException
	 */
	public Router createRouter(Route route, Properties properties) throws RouteException;
}
